#ifndef CPPBAER_H_INCLUDED
#define CPPBAER_H_INCLUDED
void test14();
void test15() ;
void test16();
void test17();
void test20();
void test21();
void test30();
void test40();

class Box
{
    public:
        double length;
        double breadth;
        double height;

        double getVolume(void){
            return length * breadth * height;
        }
        void setLength(double len){
            length = len;
        }
        void setBreadth(double bre){
            breadth = bre;
        }
        void setHeight(double hei){
            height = hei;
        }

        Box operator+(const Box&b){
            Box box;
            box.length = this->length + b.length;
            box.breadth = this->breadth + b.breadth;
            box.height = this->height + b.height;

            return box;
        }

};

class Shape
{
    public:
        Shape(int a=0, int b=0) {
            width = a;
            height = b;
        }
        int area() {
            return 0;
        }

        void setWidth(int w){
            width = w;
        }
        void setHeight(int h){
            height = h;
        }
        virtual int myv(){
            return 0;
        }
        virtual int mypv() = 0;
    protected:
        int width;
        int height;
};

class Triangle:public Shape{
    public:
        Triangle(int a=0, int b=0) :Shape(a, b){}
};

class PaintCost
{
    public:
        int getCost(int area){
            return area * 70;
        }
};

class Rectangle:public Shape, public PaintCost{
    public:
        Rectangle(int a=0, int b=0) :Shape(a, b){

        }

        int getArea(){
            return (width * height);
        }
};


class PrintData
{
    public:
        void print(int i){
        }

        void print(double f){
        }

        void print(char c[]){
        }
};

#endif // CPPBAER_H_INCLUDED
